// mysql的方法集,用来封装返回的方法
module.exports=function(fun){
    let offset = {
        //获取全部记录,全字段或自定义字段
        get:fun.get,
        //内容
        value:fun.value,
        //非
        noGet:fun.noGet,
        //非first
        noFirst:fun.noFirst,
        //获取一条记录
        first:fun.first,
        //删除
        delete:fun.delete,
        //插入sql语句的字符串
        many:fun.many,
        //计算数量
        count:fun.count,
        //分页
        paging:fun.paging,
        toSql:fun.toSql
    };
    let limit = {
        //跳过的数据
        offset:fun.offset,
        oron:fun.oron,
        ...offset
    };
    let orderBy={
        //获取多少条数据
        limit:fun.limit,
        //获取生成的sql语句
        toSql:fun.toSql,
        orderBy:fun.orderBy,
        ...limit
    };
    let orWhere ={
        //不参与提前编译，适用于多表判断
        onWhere:fun.onWhere,
        //或判断
        orWhere:fun.orWhere,
        //修改字段
        update:fun.update,
        //自增
        increment:fun.increment,
        //自减
        decrement:fun.decrement,
        //排序
        orderBy:fun.orderBy,
        //增加一条或多条数据
        insert:fun.insert,
        onn:fun.onn,
        ...orderBy
    };
    
    let where = { 
        //与判断
        where:fun.where,
        on:fun.on,
        join:fun.join,
        ...orWhere,
    };
    
    //table方法返回的方法,最多的
    let table = {
        //增加数据后返回增加后的id
        insertId:fun.insertId,
        //左连接
        join_left:fun.join_left,
        //右连接
        join_right:fun.join_right,
        ...where,
    };


    return {
        table,
        where,
        orWhere,
        orderBy,
        limit,
        offset
    }
}